home *** CD-ROM | disk | FTP | other *** search
- package java.lang;
-
- public final class Long extends Number implements Comparable<Long> {
- public static final long MIN_VALUE = -9223372036854775808L;
- public static final long MAX_VALUE = 9223372036854775807L;
- public static final Class<Long> TYPE = Class.getPrimitiveClass("long");
- private final long value;
- public static final int SIZE = 64;
- private static final long serialVersionUID = 4290774380558885855L;
-
- public static String toString(long var0, int var2) {
- if (var2 < 2 || var2 > 36) {
- var2 = 10;
- }
-
- if (var2 == 10) {
- return toString(var0);
- } else {
- char[] var3 = new char[65];
- int var4 = 64;
- boolean var5 = var0 < 0L;
- if (!var5) {
- var0 = -var0;
- }
-
- while(var0 <= (long)(-var2)) {
- var3[var4--] = Integer.digits[(int)(-(var0 % (long)var2))];
- var0 /= (long)var2;
- }
-
- var3[var4] = Integer.digits[(int)(-var0)];
- if (var5) {
- --var4;
- var3[var4] = '-';
- }
-
- return new String(var3, var4, 65 - var4);
- }
- }
-
- public static String toHexString(long var0) {
- return toUnsignedString(var0, 4);
- }
-
- public static String toOctalString(long var0) {
- return toUnsignedString(var0, 3);
- }
-
- public static String toBinaryString(long var0) {
- return toUnsignedString(var0, 1);
- }
-
- private static String toUnsignedString(long var0, int var2) {
- char[] var3 = new char[64];
- int var4 = 64;
- int var5 = 1 << var2;
- long var6 = (long)(var5 - 1);
-
- do {
- --var4;
- var3[var4] = Integer.digits[(int)(var0 & var6)];
- var0 >>>= var2;
- } while(var0 != 0L);
-
- return new String(var3, var4, 64 - var4);
- }
-
- public static String toString(long var0) {
- if (var0 == MIN_VALUE) {
- return "-9223372036854775808";
- } else {
- int var2 = var0 < 0L ? stringSize(-var0) + 1 : stringSize(var0);
- char[] var3 = new char[var2];
- getChars(var0, var2, var3);
- return new String(0, var2, var3);
- }
- }
-
- static void getChars(long var0, int var2, char[] var3) {
- int var7 = var2;
- byte var8 = 0;
- if (var0 < 0L) {
- var8 = 45;
- var0 = -var0;
- }
-
- while(var0 > 2147483647L) {
- long var4 = var0 / 100L;
- int var6 = (int)(var0 - ((var4 << 6) + (var4 << 5) + (var4 << 2)));
- var0 = var4;
- --var7;
- var3[var7] = Integer.DigitOnes[var6];
- --var7;
- var3[var7] = Integer.DigitTens[var6];
- }
-
- int var10;
- int var11;
- for(var10 = (int)var0; var10 >= 65536; var3[var7] = Integer.DigitTens[var11]) {
- int var9 = var10 / 100;
- var11 = var10 - ((var9 << 6) + (var9 << 5) + (var9 << 2));
- var10 = var9;
- --var7;
- var3[var7] = Integer.DigitOnes[var11];
- --var7;
- }
-
- int var16;
- do {
- var16 = var10 * '쳍' >>> 19;
- var11 = var10 - ((var16 << 3) + (var16 << 1));
- --var7;
- var3[var7] = Integer.digits[var11];
- var10 = var16;
- } while(var16 != 0);
-
- if (var8 != 0) {
- --var7;
- var3[var7] = (char)var8;
- }
-
- }
-
- static int stringSize(long var0) {
- long var2 = 10L;
-
- for(int var4 = 1; var4 < 19; ++var4) {
- if (var0 < var2) {
- return var4;
- }
-
- var2 = 10L * var2;
- }
-
- return 19;
- }
-
- public static long parseLong(String var0, int var1) throws NumberFormatException {
- if (var0 == null) {
- throw new NumberFormatException("null");
- } else if (var1 < 2) {
- throw new NumberFormatException("radix " + var1 + " less than Character.MIN_RADIX");
- } else if (var1 > 36) {
- throw new NumberFormatException("radix " + var1 + " greater than Character.MAX_RADIX");
- } else {
- long var2 = 0L;
- boolean var4 = false;
- int var5 = 0;
- int var6 = var0.length();
- if (var6 > 0) {
- long var7;
- if (var0.charAt(0) == '-') {
- var4 = true;
- var7 = MIN_VALUE;
- ++var5;
- } else {
- var7 = -9223372036854775807L;
- }
-
- long var9 = var7 / (long)var1;
- if (var5 < var6) {
- int var11 = Character.digit(var0.charAt(var5++), var1);
- if (var11 < 0) {
- throw NumberFormatException.forInputString(var0);
- }
-
- var2 = (long)(-var11);
- }
-
- while(var5 < var6) {
- int var13 = Character.digit(var0.charAt(var5++), var1);
- if (var13 < 0) {
- throw NumberFormatException.forInputString(var0);
- }
-
- if (var2 < var9) {
- throw NumberFormatException.forInputString(var0);
- }
-
- var2 *= (long)var1;
- if (var2 < var7 + (long)var13) {
- throw NumberFormatException.forInputString(var0);
- }
-
- var2 -= (long)var13;
- }
-
- if (var4) {
- if (var5 > 1) {
- return var2;
- } else {
- throw NumberFormatException.forInputString(var0);
- }
- } else {
- return -var2;
- }
- } else {
- throw NumberFormatException.forInputString(var0);
- }
- }
- }
-
- public static long parseLong(String var0) throws NumberFormatException {
- return parseLong(var0, 10);
- }
-
- public static Long valueOf(String var0, int var1) throws NumberFormatException {
- return new Long(parseLong(var0, var1));
- }
-
- public static Long valueOf(String var0) throws NumberFormatException {
- return new Long(parseLong(var0, 10));
- }
-
- public static Long valueOf(long var0) {
- return var0 >= -128L && var0 <= 127L ? java.lang.Long.LongCache.cache[(int)var0 + 128] : new Long(var0);
- }
-
- public static Long decode(String var0) throws NumberFormatException {
- byte var1 = 10;
- int var2 = 0;
- boolean var3 = false;
- if (var0.startsWith("-")) {
- var3 = true;
- ++var2;
- }
-
- if (!var0.startsWith("0x", var2) && !var0.startsWith("0X", var2)) {
- if (var0.startsWith("#", var2)) {
- ++var2;
- var1 = 16;
- } else if (var0.startsWith("0", var2) && var0.length() > 1 + var2) {
- ++var2;
- var1 = 8;
- }
- } else {
- var2 += 2;
- var1 = 16;
- }
-
- if (var0.startsWith("-", var2)) {
- throw new NumberFormatException("Negative sign in wrong position");
- } else {
- Long var4;
- try {
- var4 = valueOf(var0.substring(var2), var1);
- var4 = var3 ? new Long(-var4) : var4;
- } catch (NumberFormatException var7) {
- String var6 = var3 ? new String("-" + var0.substring(var2)) : var0.substring(var2);
- var4 = valueOf(var6, var1);
- }
-
- return var4;
- }
- }
-
- public Long(long var1) {
- this.value = var1;
- }
-
- public Long(String var1) throws NumberFormatException {
- this.value = parseLong(var1, 10);
- }
-
- public byte byteValue() {
- return (byte)((int)this.value);
- }
-
- public short shortValue() {
- return (short)((int)this.value);
- }
-
- public int intValue() {
- return (int)this.value;
- }
-
- public long longValue() {
- return this.value;
- }
-
- public float floatValue() {
- return (float)this.value;
- }
-
- public double doubleValue() {
- return (double)this.value;
- }
-
- public String toString() {
- return String.valueOf(this.value);
- }
-
- public int hashCode() {
- return (int)(this.value ^ this.value >>> 32);
- }
-
- public boolean equals(Object var1) {
- if (var1 instanceof Long) {
- return this.value == (Long)var1;
- } else {
- return false;
- }
- }
-
- public static Long getLong(String var0) {
- return getLong(var0, (Long)null);
- }
-
- public static Long getLong(String var0, long var1) {
- Long var3 = getLong(var0, (Long)null);
- return var3 == null ? new Long(var1) : var3;
- }
-
- public static Long getLong(String var0, Long var1) {
- String var2 = null;
-
- try {
- var2 = System.getProperty(var0);
- } catch (IllegalArgumentException var4) {
- } catch (NullPointerException var5) {
- }
-
- if (var2 != null) {
- try {
- return decode(var2);
- } catch (NumberFormatException var6) {
- }
- }
-
- return var1;
- }
-
- public int compareTo(Long var1) {
- long var2 = this.value;
- long var4 = var1.value;
- return var2 < var4 ? -1 : (var2 == var4 ? 0 : 1);
- }
-
- public static long highestOneBit(long var0) {
- var0 |= var0 >> 1;
- var0 |= var0 >> 2;
- var0 |= var0 >> 4;
- var0 |= var0 >> 8;
- var0 |= var0 >> 16;
- var0 |= var0 >> 32;
- return var0 - (var0 >>> 1);
- }
-
- public static long lowestOneBit(long var0) {
- return var0 & -var0;
- }
-
- public static int numberOfLeadingZeros(long var0) {
- if (var0 == 0L) {
- return 64;
- } else {
- int var2 = 1;
- int var3 = (int)(var0 >>> 32);
- if (var3 == 0) {
- var2 += 32;
- var3 = (int)var0;
- }
-
- if (var3 >>> 16 == 0) {
- var2 += 16;
- var3 <<= 16;
- }
-
- if (var3 >>> 24 == 0) {
- var2 += 8;
- var3 <<= 8;
- }
-
- if (var3 >>> 28 == 0) {
- var2 += 4;
- var3 <<= 4;
- }
-
- if (var3 >>> 30 == 0) {
- var2 += 2;
- var3 <<= 2;
- }
-
- var2 -= var3 >>> 31;
- return var2;
- }
- }
-
- public static int numberOfTrailingZeros(long var0) {
- if (var0 == 0L) {
- return 64;
- } else {
- int var4 = 63;
- int var3 = (int)var0;
- int var2;
- if (var3 != 0) {
- var4 -= 32;
- var2 = var3;
- } else {
- var2 = (int)(var0 >>> 32);
- }
-
- var3 = var2 << 16;
- if (var3 != 0) {
- var4 -= 16;
- var2 = var3;
- }
-
- var3 = var2 << 8;
- if (var3 != 0) {
- var4 -= 8;
- var2 = var3;
- }
-
- var3 = var2 << 4;
- if (var3 != 0) {
- var4 -= 4;
- var2 = var3;
- }
-
- var3 = var2 << 2;
- if (var3 != 0) {
- var4 -= 2;
- var2 = var3;
- }
-
- return var4 - (var2 << 1 >>> 31);
- }
- }
-
- public static int bitCount(long var0) {
- var0 -= var0 >>> 1 & 6148914691236517205L;
- var0 = (var0 & 3689348814741910323L) + (var0 >>> 2 & 3689348814741910323L);
- var0 = var0 + (var0 >>> 4) & 1085102592571150095L;
- var0 += var0 >>> 8;
- var0 += var0 >>> 16;
- var0 += var0 >>> 32;
- return (int)var0 & 127;
- }
-
- public static long rotateLeft(long var0, int var2) {
- return var0 << var2 | var0 >>> -var2;
- }
-
- public static long rotateRight(long var0, int var2) {
- return var0 >>> var2 | var0 << -var2;
- }
-
- public static long reverse(long var0) {
- var0 = (var0 & 6148914691236517205L) << 1 | var0 >>> 1 & 6148914691236517205L;
- var0 = (var0 & 3689348814741910323L) << 2 | var0 >>> 2 & 3689348814741910323L;
- var0 = (var0 & 1085102592571150095L) << 4 | var0 >>> 4 & 1085102592571150095L;
- var0 = (var0 & 71777214294589695L) << 8 | var0 >>> 8 & 71777214294589695L;
- var0 = var0 << 48 | (var0 & 4294901760L) << 16 | var0 >>> 16 & 4294901760L | var0 >>> 48;
- return var0;
- }
-
- public static int signum(long var0) {
- return (int)(var0 >> 63 | -var0 >>> 63);
- }
-
- public static long reverseBytes(long var0) {
- var0 = (var0 & 71777214294589695L) << 8 | var0 >>> 8 & 71777214294589695L;
- return var0 << 48 | (var0 & 4294901760L) << 16 | var0 >>> 16 & 4294901760L | var0 >>> 48;
- }
- }
-